package com.tanhua.dubbo.server.api;

/**
 * @author feihao
 * @version 1.0
 * @date 2021/7/5 17:17
 */

import com.tanhua.dubbo.server.enums.HuanXinMessageType;
import com.tanhua.dubbo.server.pojo.HuanXinUser;

/**
 * 与环信平台交互
 */
public interface HuanXinApi {

    /**
     * 获取环信token（获取管理员权限）
     *
     * @return
     */
    String getToken();


    /**
     * 注册环信用户
     *
     * @param userId
     * @return
     */
    Boolean register(Long userId);


    /**
     * 根据userId查询HuanXinUser
     *
     * @param userId
     * @return
     */
    HuanXinUser queryHuanXinUserByUserId(Long userId);


    /**
     * 根据环信UserName查询对应的环信user
     *
     * @param userName
     * @return
     */
    HuanXinUser queryHuanXinUserByUserName(String userName);


    /**
     * 添加好友
     *
     * @param userId   自己用户的id
     * @param friendId 要添加的好友 id
     * @return
     */
    Boolean addFriends(Long userId, Long friendId);


    /**
     * 删除好友
     *
     * @param userId param friends
     * @return
     */
    Boolean removeFriends(Long userId, Long friendId);


    /**
     * 以管理员身份发送消息
     *
     * @param targetUserName 发送目标的用户名
     * @param huanXinMessageType 消息类型
     * @param msg
     * @return
     */
    Boolean sendMessageByAdmin(String targetUserName, HuanXinMessageType huanXinMessageType, String msg);

}
